# 匿名函数lambda
# 表达式赋值给一个变量，这个变量就相当于一个函数
# 没有名称的函数，不会在其他地方被调用，一般只有一行代码、一个返回值，
# 可以简化为lambda 参数列表 ： 表达式
# 只有表达式 默认返回结果
# 以lambda关键字开头，不需要小括号，默认返回值
# 列如
# add 就代表一个函数    function
add = lambda a, b: a + b
#            参数列表   表达式


print(type(add))
print(add(15, 65))
# (15,65) 调用函数的参数列表

list1 = [10, 20, 30, 40, 50, 60, 90]
for i in range(len(list1)):
    print(list1[i], end='\t')
print()

# lis函数只是将  i 对应的下标值取出编列还需for循环
lis = lambda i: list1[i]
for i in range(len(list1)):
    print(lis(i), end='\t')
print()

# 字典的排序
list2 = [{'name': '周五', 'age': 22, 'score': 99},
         {'name': '三训', 'age': 21, 'score': 95},
         {'name': '文远', 'age': 23, 'score': 100},
         {'name': '龙文', 'age': 20, 'score': 97}]

# 对列表中的元素，以score的升序排列（reverse=False 为升序 reverse=Ture 为降序）
list2.sort(key=lambda h: h.get('score'), reverse=False)
list2.sort(key=lambda h: h.get('age'), reverse=True)
print(list2)
print(list2)
